今天又是很趕的一天,連跑了三個面試,差點來不及回來寫鐵人賽,還好趕上了 XD
之前我們學完了Topic
和Service
,是透過不同的方法讓Node
之間溝通,那他們在溝通的時候都是使用messsage
在傳輸訊息,在ROS裡面定義一個message
,需要使用.msg
和.srv
檔案,那我們就來看看這兩個差在哪吧!
.msg
檔就是定義一個message
格式的一種檔案,我們可以自定義自己想要的message type
,但他當然也有已經建立好的一些格式讓我們可以直接拿來用,例如之前Topic
教學裡面的std_msgs/String
就是一種,官方提供的message格式有這些:
大概就是包含了各種型別跟一些陣列,當然如果上述格式的message
都不符合我們的需求的話,就要自己定義一種新的格式囉!
上一篇我們其實就講過了service
其實是由一組request
和response
組成的,所以它會包含兩種不同格式的message
,是分別給request
和response
用的,像上次Service
的範例add_two_ints
,就是request
需要兩個int
型別的資料,而response
就是一個int
這樣,其定義的格式如下:
int64 a
int64 b
---
int64 sum
在.srv
檔中會用---
將request
和response
格式的定義分開,所以這樣大概就可以看出他需要兩個int
參數,並回傳一個int
的資料。
明天我們就來寫看看自己定義的msg
和srv
吧!